package org.example.managere.dto.feibiao;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import jakarta.validation.constraints.*;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 工况特定输入参数表 DTO
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AmAapInputDto implements Serializable {
    private Integer id;

    @NotEmpty(message = "工况类型不能为空")
    private String operatingMode;

    @NotNull(message = "启动电流不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "启动电流不能小于0")
    private Float startingCurrent;

    @NotNull(message = "转矩脉动不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "转矩脉动不能小于0")
    @DecimalMax(value = "100.0", inclusive = true, message = "转矩脉动不能大于100")
    private BigDecimal torqueRipple;

    @NotEmpty(message = "振动频谱特征不能为空")
    private String freqVibration; // 256维数组的JSON字符串

    @NotNull(message = "温度变化梯度不能为空")
    private Float thermalGradient;

    @NotNull(message = "轴承温升速率不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "轴承温升速率不能小于0")
    private Float bearingTempRiseRate;

    @NotNull(message = "冷却效率不能为空")
    @DecimalMin(value = "0.0", inclusive = true, message = "冷却效率不能小于0")
    @DecimalMax(value = "100.0", inclusive = true, message = "冷却效率不能大于100")
    private BigDecimal coolingEfficiency;
} 